home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / TextEncodingPlugin.p < prev    next >
Text File  |  1996-05-01  |  5KB  |  127 lines

  1. {
  2.      File:        TextEncodingPlugin.p
  3.  
  4.      Contains:    Required interface for Text Encoding Converter-Plugins
  5.  
  6.      Version:    Technology:    
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT TextEncodingPlugin;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __TEXTENCODINGPLUGIN__}
  28. {$SETC __TEXTENCODINGPLUGIN__ := 1}
  29.  
  30. {$I+}
  31. {$SETC TextEncodingPluginIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __NAMEREGISTRY__}
  38. {$I NameRegistry.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __TEXTENCODINGCONVERTER__}
  41. {$I TextEncodingConverter.p}
  42. {$ENDC}
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48. {
  49. ####################################################################################
  50.         Constructor/Destructor Messages
  51. ####################################################################################
  52. }
  53.  
  54. TYPE
  55.     TextEncodingPluginInitPtr = ProcPtr;  { FUNCTION TextEncodingPluginInitPtr: OSStatus; C; }
  56.  
  57. {  normal termination }
  58.     TextEncodingPluginFreePtr = ProcPtr;  { FUNCTION TextEncodingPluginFreePtr: OSStatus; C; }
  59.  
  60. {  error condition termination }
  61.     TextEncodingPluginEjectPtr = ProcPtr;  { FUNCTION TextEncodingPluginEjectPtr: OSStatus; C; }
  62.  
  63. {
  64. ####################################################################################
  65.         Control Messages
  66. ####################################################################################
  67. }
  68.     TextEncodingPluginStartIOPtr = ProcPtr;  { FUNCTION TextEncodingPluginStartIOPtr: OSStatus; C; }
  69.  
  70.     TextEncodingPluginHaltIOPtr = ProcPtr;  { FUNCTION TextEncodingPluginHaltIOPtr: OSStatus; C; }
  71.  
  72. {
  73. ####################################################################################
  74.         Functional Messages
  75. ####################################################################################
  76. }
  77.     TextEncodingPluginCountAvailableTextEncodingsPtr = ProcPtr;  { FUNCTION TextEncodingPluginCountAvailableTextEncodingsPtr(VAR numberOfMappings: ItemCount): OSStatus; C; }
  78.  
  79.     TextEncodingPluginGetAvailableTextEncodingsPtr = ProcPtr;  { FUNCTION TextEncodingPluginGetAvailableTextEncodingsPtr(VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR actualAvailableEncodings: ItemCount): OSStatus; C; }
  80.  
  81.     TextEncodingPluginNewEncodingConverterPtr = ProcPtr;  { FUNCTION TextEncodingPluginNewEncodingConverterPtr(VAR newEncodingConverter: EncodingConverterRef; inputEncoding: TextEncoding; outputEncoding: TextEncoding): OSStatus; C; }
  82.  
  83.     TextEncodingPluginDisposeEncodingConverterPtr = ProcPtr;  { FUNCTION TextEncodingPluginDisposeEncodingConverterPtr(VAR newEncodingConverter: EncodingConverterRef): OSStatus; C; }
  84.  
  85.     TextEncodingPluginConvertTextEncodingPtr = ProcPtr;  { FUNCTION TextEncodingPluginConvertTextEncodingPtr(VAR encodingConverter: EncodingConverterRef; clearContext: BOOLEAN; VAR inputText: BytePtr; VAR inputLength: ByteCount; outputBuffer: BytePtr; outputBufferSize: ByteCount; VAR actualOutputLength: ByteCount): OSStatus; C; }
  86.  
  87.     TextEncodingPluginExamineTextEncodingPtr = ProcPtr;  { FUNCTION TextEncodingPluginExamineTextEncodingPtr(VAR newEncodingConverter: EncodingConverterRef): OSStatus; C; }
  88.  
  89. {
  90. ####################################################################################
  91.         Dispatch Table Definition
  92. ####################################################################################
  93. }
  94.  
  95. CONST
  96.     kTextEncodingPluginDispatchTableVersion1 = $0001;
  97.     kTextEncodingPluginDispatchTableCurrentVersion = $0001;
  98.  
  99.  
  100. TYPE
  101.     TextEncodingPluginDispatchTablePtr = ^TextEncodingPluginDispatchTable;
  102.     TextEncodingPluginDispatchTable = RECORD
  103.         version:                INTEGER;
  104.         PlugInInit:                TextEncodingPluginInitPtr;
  105.         PlugInFree:                TextEncodingPluginFreePtr;
  106.         PlugInEject:            TextEncodingPluginEjectPtr;
  107.         PlugInStartIO:            TextEncodingPluginStartIOPtr;
  108.         PlugInHaltIO:            TextEncodingPluginHaltIOPtr;
  109.         PlugInCountAvailableTextEncodings: TextEncodingPluginCountAvailableTextEncodingsPtr;
  110.         PlugInGetAvailableTextEncodings: TextEncodingPluginGetAvailableTextEncodingsPtr;
  111.         PlugInNewEncodingConverter: TextEncodingPluginNewEncodingConverterPtr;
  112.         PlugInDisposeEncodingConverter: TextEncodingPluginDisposeEncodingConverterPtr;
  113.         PlugInConvertTextEncoding: TextEncodingPluginConvertTextEncodingPtr;
  114.         PlugInExamineTextEncoding: TextEncodingPluginExamineTextEncodingPtr;
  115.     END;
  116.  
  117. {$ALIGN RESET}
  118. {$POP}
  119.  
  120. {$SETC UsingIncludes := TextEncodingPluginIncludes}
  121.  
  122. {$ENDC} {__TEXTENCODINGPLUGIN__}
  123.  
  124. {$IFC NOT UsingIncludes}
  125.  END.
  126. {$ENDC}
  127.